/*
 *
 * Copyright (C) 2008 Jose Javier García Zornoza.
 *
 * Este es un programa libre; puedes distribuirlo y/o modificarlo bajo
 * los términos de la versión 2 (o cualquier versión posterior) de la Licencia
 * Pública General de la Fundación de Software Libre.
 * Este programa se distribuye con la esperanza  de poder ser útil, pero sin
 * NINGUNA GARANTIA; tampoco la garantía implícita de COMERCIALIZACION o DEDICACIÓN
 * A UN PROPOSITO PARTICULAR. Ver la licencia GNU GPL para más detalles.
 * Deberías haber recibido una copia de la licencia GNU GPL con este programa;
 * en caso contrario puedes obtener una copia visitando el sitio web www.fsf.org
 * o escribiendo a la Fundación de Software Libre, Inc., 59 Temple
 * Place - Suite 330, Boston, MA  02111-1307, USA.
 *
 */
package org.gruposp2p.dnie.xml.jaxb;

import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlElementDecl;
import javax.xml.bind.annotation.XmlRegistry;
import javax.xml.namespace.QName;
import org.gruposp2p.dnie.model.DNIeDocumentToSign;
import org.gruposp2p.dnie.model.DNIeDocumentToSignOption;
import org.gruposp2p.dnie.model.DNIeSignedDocument;
import org.gruposp2p.dnie.model.DNIeSignedDocumentComment;
import org.gruposp2p.dnie.model.DNIeSignedDocumentOptionSelected;
import org.gruposp2p.dnie.model.SignedDocument;

/**
 * This object contains factory methods for each Java content interface and Java
 * element interface generated in the generated package.
 * <p>An ObjectFactory allows you to programatically construct new instances of
 * the Java representation for XML content. The Java representation of XML 
 * content can consist of schema derived interfaces and classes representing the
 * binding of schema type definitions, element declarations and model groups.
 * Factory methods for each of these are provided in this class.
 */
@XmlRegistry
public class ObjectFactory {

    private final static QName _SignatureDocument_QNAME = new QName("", "Signature");
    private final static QName _DNIeDocumentToSign_QNAME = new QName("", "DNIeDocumentToSign");
    private final static QName _DNIeDocumentToSignOption_QNAME = new QName("", "DNIeDocumentToSignOption");
    private final static QName _DNIeSignedDocument_QNAME = new QName("", "DNIeSignedDocument");
    private final static QName _DNIeSignedDocumentComment_QNAME =
            new QName("", "DNIeSignedDocumentComment");
    private final static QName _DNIeSignedDocumentOptionSelected_QNAME =
            new QName("", "DNIeSignedDocumentOptionSelected");


    /**
     * Create a new ObjectFactory that can be used to create new instances of
     * schema derived classes for package: generated
     */
    public ObjectFactory() {
    }

    /**
     * Create an instance of {@link SignedDocument }
     * 
     */
    public SignedDocument createSignatureDocument() {
        return new SignedDocument();
    }

    /**
     * Create an instance of {@link DocumentToSign }
     *
     */
    public DNIeDocumentToSign createDnieDocumentToSign() {
        return new DNIeDocumentToSign();
    }

    /**
     * Create an instance of {@link DNIeDocumentToSignOption }
     *
     */
    public DNIeDocumentToSignOption createDNIeDocumentToSignOption() {
        return new DNIeDocumentToSignOption();
    }

    /**
     * Create an instance of {@link DNIeSignedDocumentOptionSelected }
     *
     */
    public DNIeSignedDocumentOptionSelected createDNIeSignedDocumentOptionSelected() {
        return new DNIeSignedDocumentOptionSelected();
    }


    /**
     * Create an instance of {@link DNIeSignedDocument }
     *
     */
    public DNIeSignedDocument createDNIeSignedDocument() {
        return new DNIeSignedDocument();
    }

    /**
     * Create an instance of {@link DNIeSignedDocumentComment }
     *
     */
    public DNIeSignedDocumentComment createDNIeSignedDocumentComment() {
        return new DNIeSignedDocumentComment();
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link SignedDocument }{@code >}
     */
    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "Signature")
    public JAXBElement<SignedDocument> SignatureDocument(SignedDocument value) {
        return new JAXBElement<SignedDocument>(
                _SignatureDocument_QNAME, SignedDocument.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link DNIeDocumentToSign }{@code >}
     */
    @XmlElementDecl(name = "DNIeDocumentToSign")
    public JAXBElement<DNIeDocumentToSign> DNIeDocumentToSign(DNIeDocumentToSign value) {
        return new JAXBElement<DNIeDocumentToSign>(
                _DNIeDocumentToSign_QNAME, DNIeDocumentToSign.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link DNIeDocumentToSignOption }{@code >}
     */
    @XmlElementDecl(name = "DNIeDocumentToSignOption")
    public JAXBElement<DNIeDocumentToSignOption> DNIeDocumentToSignOption(DNIeDocumentToSignOption value) {
        return new JAXBElement<DNIeDocumentToSignOption>(
                _DNIeDocumentToSignOption_QNAME, DNIeDocumentToSignOption.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link DNIeSignedDocument }{@code >}
     */
    @XmlElementDecl(name = "DNIeSignedDocument")
    public JAXBElement<DNIeSignedDocument> DNIeSignedDocument(DNIeSignedDocument value) {
        return new JAXBElement<DNIeSignedDocument>(
                _DNIeSignedDocument_QNAME, DNIeSignedDocument.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link DNIeSignedDocumentOptionSelected }{@code >}
     */
    @XmlElementDecl(name = "DNIeSignedDocumentOptionSelected")
    public JAXBElement<DNIeSignedDocumentOptionSelected> DNIeSignedDocumentOptionSelected(
            DNIeSignedDocumentOptionSelected value) {
        return new JAXBElement<DNIeSignedDocumentOptionSelected>(
                _DNIeSignedDocumentOptionSelected_QNAME, DNIeSignedDocumentOptionSelected.class, null, value);
    }


    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link DNIeSignedDocumentComment }{@code >}
     */
    @XmlElementDecl(name = "DNIeSignedDocumentComment")
    public JAXBElement<DNIeSignedDocumentComment> DNIeSignedDocumentComment(
            DNIeSignedDocumentComment value) {
        return new JAXBElement<DNIeSignedDocumentComment>(
                _DNIeSignedDocumentComment_QNAME, DNIeSignedDocumentComment.class, null, value);
    }

}
